﻿using System;
using System.Configuration;
using BLL;

namespace Web.forms
{
    public partial class CargaInicial : Pagina
    {
        private void InicioPagina()
        {
            if (PeriodoActual.Estado.EstadoId.Equals(2))
            {
                lblPeriodo.Text = string.Format("Período '{0}' se encuentra Vigente", PeriodoActual.Glosa);

                txtArchivoMaestroSAP.Enabled = false;
                txtArchivoMaestroSAP.Visible = false;
                btnCargar.Enabled = false;
                btnCargar.Visible = false;

                btnAprobar.Enabled = false;
                btnAprobar.Visible = false;

                btnVerReporte.Enabled = true;
                btnVerReporte.Visible = true;
            }
            else
            {
                lblPeriodo.Text = string.Format("Período: '{0}'", PeriodoActual.Glosa);
                lblPeriodo.Enabled = true;
                lblPeriodo.Visible = true;

                if (Carga.ExisteReporteCargaInicial(PeriodoActual.Llave))
                {
                    btnAprobar.Visible = true;
                    btnAprobar.Enabled = true;
                    btnVerReporte.Enabled = true;
                    btnVerReporte.Visible = true;
                }
                else
                {
                    btnAprobar.Visible = false;
                    btnAprobar.Enabled = false;
                    btnVerReporte.Enabled = false;
                    btnVerReporte.Visible = false;
                }

                txtArchivoMaestroSAP.Enabled = true;
                txtArchivoMaestroSAP.Text = ArchivoMaestroSAP;
                txtArchivoMaestroSAP.Focus();

                btnCargar.Enabled = true;
            }

            lblMensaje.Visible = false;
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack) return;

            btnAprobar.OnClientClick = "if (!confirm('¿Desea aprobar la Carga Inicial desde SAP para el período \\'" + PeriodoActual.Glosa + "\\'?')) return false;";
            ClientScript.RegisterClientScriptInclude(GetType(), "sc" + btnCargar.ClientID, "$('" + btnCargar.ClientID + "').click(function(){ $('#dvLoading').show(); $('#dvLoading').fadeOut(2000); });");

            InicioPagina();
        }

        protected void btnVerReporte_Click(object sender, EventArgs e)
        {
            Redirect(ConfigurationManager.AppSettings["rptCargaInicial"].Replace("[ServidorReportingServices]", ServidorReportingServices).Replace("[CarpetaReportingServices]", CarpetaReportingServices).Replace("[Periodo]", PeriodoActual.Llave), "_blank", "");
        }

        protected void btnAprobar_Click(object sender, EventArgs e)
        {
            var objCarga = new Carga();

            if (!objCarga.AprobarCargaArchivo(PeriodoActual.Llave)) return;

            InicioPagina();

            PopUpMessage(string.Format("El período '{0}' ha sido aprobado satisfactoriamente.-", PeriodoActual.Glosa));
        }

        protected void btnCargar_Click(object sender, EventArgs e)
        {
            if (txtArchivoMaestroSAP.Text.Trim().Length < 1)
            {
                PopUpMessage("Debe ingresar un archivo");
                txtArchivoMaestroSAP.Focus();
                return;
            }

            if (string.IsNullOrEmpty(txtArchivoMaestroSAP.Text.Trim())) return;

            if (!txtArchivoMaestroSAP.Text.Trim().ToLower().EndsWith("txt"))
            {
                PopUpMessage("Debe ingresar un archivo plano (*.txt)");
                txtArchivoMaestroSAP.Focus();
                return;
            }

            lblMensaje.Text = "Cargando...";
            lblMensaje.Visible = true;

            var objCarga = new Carga();

            if (!objCarga.CargaArchivoSAP(PeriodoActual.Llave, txtArchivoMaestroSAP.Text))
            {
                lblMensaje.Text = "";
                lblMensaje.Visible = false;

                PopUpMessage(objCarga.Mensaje);
                return;
            }

            InicioPagina();

            PopUpMessage(objCarga.Mensaje);
        }
    }
}